草庐IT

C++::Boost::Regex 迭代子匹配

全部标签

regex - 如何在 golang 中使用正则表达式重命名 json 字符串中的根字段而不影响同名的内部字段?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭4年前。Improvethisquestion我有一个json原始字符串{"id":"xxx","person":{"id":"yyy","name":"abc"},"box":{"id":"zzz"}}我想在不影响内部“id”字段的情况下,将根目录中的字段“id”重命名为“uuid”。我该怎么做?

regex - Go 中跨越多行的正则表达式

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion在Go中是否可以使用多行来打破复杂的正则表达式?这将有助于创建更具可读性的代码。例如在Scala、Ruby、JavaScript中可以使用x标志:x—自由间距和行注释(又名扩展模式)它允许编写如下正则表达式:TAXON_CONCEPTS2=/\s+(\(?s\.\s?s\.|\(?s\.\s?l\.|\(?s\.\s?str\.|\(?s\.\s?lat\.|sec\.|sec|near)

go - 不能用方法迭代结构?

我的问题是,我有指定的应用程序:myapp|-app/main.go|-data/a.go|-data/b.go在a.go中我有带方法的结构packagedatatypeAstruct{Field_astringField_bstring}func(aA)SomeMethod()string{return"somemethodA"}在b.go中类似:packagedatatypeBstruct{Field_astringField_bstring}func(bB)SomeMethod()string{return"somemethodB"}现在我在main.go中以这种方式引用:pac

golang 错误处理类型不匹配

我试图学习golang中的错误处理以了解错误处理的工作原理。我有以下代码:varaint8varbint32varerrerrorc:=a+b//typesmismatchederroriferr!=nil{fmt.Println(err)}当我尝试在vim中使用:GoRun运行它时,出现类型不匹配的错误。我的问题是,如果在编译过程中发生错误,甚至可能的话,我该如何捕获该错误并将消息打印到屏幕上? 最佳答案 尝试在Go中添加两种不同的类型是一个编译时错误。该程序永远不会编译,因此永远不会运行,所以没有什么可捕捉的——除非在编写你的程

go - 如何在 Go 中迭代自定义类型的数组?

我在代码中创建了一个客户类型。我有一个函数正在读取csv文件并从每一行创建一个数组。typeDesiredServicestruct{Namestring`json:"Name"`Statusstring`json:"Status"`}如果我打印出变量,我有一些看起来像[{app1active}{app2active}]我不知道如何使用该变量并遍历每个索引。我需要获取所有状态为事件的条目并调用另一个函数来根据API检查名称。我在想也许我没有正确设置结构。当我检查变量类型时,它返回[]main.DesiredService在阅读了一些文档之后,这是我想出的但行不通的方法。funcchec

go - 实现与接口(interface)不匹配

我有一个界面:typeResponderinterface{read()(interface{})getError()(error)setError(error)getTransactionId()(string)}和实现:typeCapacityResponsestruct{valint32errerrortransactionIdstring}func(r*CapacityResponse)getError()error{returnr.err}func(r*CapacityResponse)setError(errerror){r.err=err}func(r*CapacityR

for-loop - 可以在 'for .. range' 循环中的每次迭代后添加 final 语句(就像在标准 for 循环中一样)吗?

在fortask:=rangech{..}循环(遍历channel)中,我有几个地方想前进到下一个元素(continue);然而,我需要在继续之前执行一个额外的语句(设置一个标志来标记工作例程当前空闲),但在从channel接收到下一个元素之前-请参见下面的代码示例。目前,我必须在每次continue之前重复此语句。这可行,但不是很优雅,worker.setIdle()很容易被遗忘。如果我可以在循环的入口处设置这样一个“终结器”语句,那就太好了,就像您对fortask:=rangech;的期望一样。worker.setIdle(){...}构造,但当然这在语法上是不正确的。它就像循环中

c - C 和 GO 之间的图像大小不匹配

读取图像并计算其字节大小在C和Go中产生不同的结果:使用相同的图像,这是我在c中的readFile函数:FILE*inputFile=fopen(inputFilename,"rb");if(inputFile==NULL){printf("cannotopenfile%s",inputFilename);return0;}else{fseek(inputFile,0,SEEK_END);longfsize=ftell(inputFile);rewind(inputFile);return(fsize);}在Go中,相同的图像://requeststhesameimageasabove

go - 字符串迭代编程

我想用Go编程语言编写一个能够通过迭代生成字符串数组的函数。在标题为“描述”的字段中为信号路径输入一个唯一名称。由于该字段具有迭代器,因此可以使用大括号设置多个连续计数的信号路径,例如“Source{1-16:2}{Left,Right}>”结果是一个字符串数组:Source01Left>Source01Right>Source02Left>Source02Right>...Source16Left>Source16Right>我可以在字符串中有一个未定义的大括号迭代器。第一个大括号{1-16:2}表示1-16:增量值从1到16:2是表示两位数的填充第二个大括号[Left,Right}

go - 如何通过匹配的字符串变量在结构中选择键 ID

我对更新结构中的值很感兴趣,但我注意到有很多重复的代码。是否可以将keyID传递给func(keyidstring)以使用输入作为选择器来修改结构?我知道reflect包存在,但是返回键字段的值很简单,但我不知道如何将它用作键id的选择器。我的重复代码模式:func(j*items)updatePath(nstring,vstring)[]JSON{cur:=j.find(n)ifcur!=-1{j.items[cur].Path=vreturnj.items}returnj.items}func(j*items)updateArgs(nstring,v[]string)[]JSON{